<?php
/**
 * 十一选五中奖
 */
defined('IN_YuLin') || exit('NO PERMIT!');
echo '<pre>';
// 获取十一选五所有的彩种信息
$lotterySql  = 'SELECT lott.id, lott.`sname`, lott.`title`, lott.`ptid` FROM yulin_lottery AS lott
                LEFT JOIN yulin_lottery_category AS cate
                ON lott.`cate_id` = cate.`id`
                WHERE cate.`sname` = "syxw"';
$lotteryList = $db->getall($lotterySql);
// 获取到所有的十一选五彩种，根据彩种设置sname信息来获取开奖接口内容
$qihaoTab    = Table('lottery_k3');
foreach ($lotteryList as $k => $v){
    // 获取当前彩种最新的开奖期号
    $qihaoSql  = 'SELECT id, period, tid, `code` FROM ' . $qihaoTab . ' WHERE tid = ' . $v['id'] . ' AND `code` != "" ORDER BY id DESC LIMIT 20';
    $qihaoList = $db->getall($qihaoSql);
    foreach ($qihaoList as $key => $value){
        // 获取当前期号后， 根据期号的id来获取所有当前彩种期号的投注项
        $allBetSql = 'SELECT item.id, item.o_id, item.period_id, item.lott_id, item.en_play, item.betting_no, item.betting_str, item.num, item.money, item.odds, item.winner, item.status,
                main.order_no,
                per.period
                FROM ' . Table('lottery_order_item') . ' as item
                LEFT JOIN ' . Table('lottery_order_main') . ' as main
                ON item.o_id = main.id
                    LEFT JOIN ' . Table('lottery_k3') . ' as per
                        ON item.period_id = per.id
                WHERE item.winner = "0" AND item.period_id = ' . $value['id'];
        $allBetList= $db->getall($allBetSql);
        if(!$allBetList || empty($allBetList)) continue;
        $value['code_arr'] = explode(',', $value['code']);
        foreach ($value['code_arr'] as $qk => $qv){
            $value['code_arr'][$qk] = intval($qv);
        }
        foreach ($allBetList as $ak => $av){
            checkZhongjiang($av, $value, $db);
        }
    }
}
echo 'END';

/**
 * 检查投注项是否中奖
 * @param $data : 投注内容
 * @param $kaijiang : 开奖结果
 * @param $db   : 数据库连接对象
 */
function checkZhongjiang($data, $kaijiang, $db){
    $update    = array(
        'winner' => 1, // 默认未中奖
    );
    $betArr = explode(',', $data['betting_no']);
    switch ($data['en_play']){
        case 'SM-QS_ZHI_XFS':
            // 三码玩法：前三直选复式【与开奖数据前三位完全一致即为中奖】
        case 'SM-QS_ZHI_XDS':
            // 三码玩法：前三直选单式
            if($betArr[0] == $kaijiang['code_arr'][0] && $betArr[1] == $kaijiang['code_arr'][1] && $betArr[2] == $kaijiang['code_arr'][2]){
                // 恭喜中奖
                $update['winner'] = 2;
            }
            break;
        case 'SM-QS_ZU_XFS':
            // 三码玩法：前三组选复式【与开奖数据前三包含投注号即中奖，不限顺序】
        case 'SM-QS_ZU_XDS':
            // 三码玩法：前三组选单式【与开奖数据前三包含投注号即中奖，不限顺序】
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 3));
            if (in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'SM-QS_ZU_XDT':
            // 三码玩法：前三组选胆拖【开奖前三个数与投注数一样，顺序不要求，  且胆码必须全中】
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 3));
            // 检查有多少胆码， 一个胆码与两个胆码的中奖计算不一样
            $bettingDan = array_filter(explode(' ', array_shift(explode(',', $data['betting_str']))));
            if (count($bettingDan) == 1 ){
                // 一胆二拖
                if (in_array($bettingDan[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)){
                    $update['winner'] = 2;
                }
            }else{
                // 二胆一拖
                if(in_array($bettingDan[0], $tmp) && in_array($bettingDan[1], $tmp) && in_array($betArr[2], $tmp)){
                    $update['winner'] = 2;
                }
            }
            break;
        case 'EM-QE_ZHI_XFS':
            // 二码玩法：前二直选复式
        case 'EM-QE_ZHI_XDS':
            // 二码玩法：前二直选单式
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 2));
            if ($betArr[0] ==  $tmp[0] && $betArr[1] ==  $tmp[1]){
                $update['winner'] = 2;
            }
            break;
        case 'EM-QE_ZU_XFS':
            // 二码玩法：前二组选复式【投注的两个号码，在开奖前两个号码中，且不限顺序即中奖】
        case 'EM-QE_ZU_XDS':
            // 二码玩法：前二组选单式【投注的两个号码，在开奖前两个号码中，且不限顺序即中奖】
        case 'EM-QE_ZU_XDT':
            // 二码玩法：前二组选胆拖【投注的两个号码，在开奖前两个号码中，且不限顺序即中奖】
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 2));
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'BDW-QSYMBDW':
            // 不定位：前三一码不定位【开奖前三个号码包含投注项即为中奖】
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 3));
            if(in_array($betArr[0], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'DWD-FS':
            // 定位胆：复式【投注号的位置与开奖号对应位置的号码相同，即为中奖】
            $tmp = array_shift(array_chunk($kaijiang['code_arr'], 3));
            if($betArr[0] == $tmp[0] || $betArr[1] == $tmp[1] || $betArr[2] == $tmp[2] ){
                $update['winner'] = 2;
            }
            break;
        case 'QWX-DDS':
            // 趣味型：定单双【开奖数的单双数判断】
            $tmp  = $kaijiang['code_arr'];
            // 计算开奖号的单数值数量
            $nums = 0;
            foreach ($tmp as $k => $v){
                if ($v % 2){
                    $nums++;
                }
            }
            // 截取投注号第一个数值
            $betArr1 = intval($betArr[0]);
            if ($nums == $betArr1){
                $update['winner'] = 2;
                // 赔率根据投注内容浮动
                switch ($nums){
                    case '0':
                        $update['odds']   = '900.90';
                        break;
                    case '1':
                        $update['odds'] = '30.03';
                        break;
                    case '2':
                        $update['odds'] = '6.00';
                        break;
                    case '3':
                        $update['odds'] = '6.00';
                        break;
                    case '4':
                        $update['odds'] = '12.01';
                        break;
                    case '5':
                        $update['odds'] = '150.15';
                        break;
                }
                $update['remark'] = $betArr[0] . ' 赔率为' . $update['odds'];
            }
            break;
        case 'QWX-CZW':
            // 趣味型：猜中位【开奖号码排序后取中间的一位对比投注号，如果相同则中奖】
            $tmp  = $kaijiang['code_arr'];
            sort($tmp);
            if($betArr[0] == $tmp[2]) {
                $update['winner'] = 2;
                switch ($nums){
                    case '3':
                        $update['odds'] = '32.17';
                        break;
                    case '9':
                        $update['odds'] = '32.17';
                        break;
                    case '4':
                        $update['odds'] = '14.30';
                        break;
                    case '8':
                        $update['odds'] = '14.30';
                        break;
                    case '5':
                        $update['odds'] = '10.01';
                        break;
                    case '7':
                        $update['odds'] = '10.01';
                        break;
                    case '6':
                        $update['odds'] = '9.00';
                        break;
                }
                $update['remark'] = $betArr[0] . ' 赔率为' . $update['odds'];
            }
            break;
        case 'RXDS-YZY':
            // 任选单式：一中一【开奖数包含投注的一个号码即为中奖】
        case 'RXFS-YZY':
            // 任选复式：一中一【开奖数包含投注的一个号码即为中奖】
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDS-EZE':
            // 任选单式：二中二
        case 'RXFS-EZE':
            // 任选复式：二中二
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDS-SZS':
            // 任选单式：三中三
        case 'RXFS-SZS':
            // 任选复式：三中三
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDS-SI_Z_SI':
            // 任选单式：四中四
        case 'RXFS-SI_Z_SI':
            // 任选复式：四中四
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                  && in_array($betArr[3], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDS-WZW':
            // 任选单式：五中五
        case 'RXFS-WZW':
            // 任选复式：五中五
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                 && in_array($betArr[3], $tmp) && in_array($betArr[4], $tmp)){
                    $update['winner'] = 2;
            }
            break;
        case 'RXDS-LZW':
            // 任选单式：六中五
        case 'RXFS-LZW':
            // 任选复式：六中五
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                 && in_array($betArr[3], $tmp) && in_array($betArr[4], $tmp) && in_array($betArr[5], $tmp)){
                    $update['winner'] = 2;
            }
            break;
        case 'RXDS-QZW':
            // 任选单式：七中五
        case 'RXFS-QZW':
            // 任选复式：七中五
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                 && in_array($betArr[3], $tmp) && in_array($betArr[4], $tmp) && in_array($betArr[5], $tmp)
                 && in_array($betArr[6], $tmp)){
                    $update['winner'] = 2;
            }
            break;
        case 'RXDS-BZW':
            // 任选单式：八中五
        case 'RXFS-BZW':
            // 任选复式：八中五
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                && in_array($betArr[3], $tmp) && in_array($betArr[4], $tmp) && in_array($betArr[5], $tmp)
                && in_array($betArr[6], $tmp) && in_array($betArr[7], $tmp)){
                    $update['winner'] = 2;
            }
            break;
        case 'RXDT-EZE':
            // 任选胆拖：二中二 【胆码必须是开奖号码，所选两个号码在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDT-SZS':
            // 任选胆拖：三中三 【胆码必须是开奖号码，所选三个号码在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDT-SI_Z_SI':
            // 任选胆拖：四中四 【胆码必须是开奖号码，所选四个号码在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                 && in_array($betArr[3], $tmp)){
                $update['winner'] = 2;
            }
            break;
        case 'RXDT-WZW':
            // 任选胆拖：五中五 【胆码必须是开奖号码，所选五个号码在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp) && in_array($betArr[2], $tmp)
                && in_array($betArr[3], $tmp) && in_array($betArr[4], $tmp)){
                    $update['winner'] = 2;
            }
            break;
        case 'RXDT-LZW':
            // 任选胆拖：六中五 【胆码必须是开奖号码，所选六个号码有五个在开奖号码中】
            $tmp   = $kaijiang['code_arr'];
            $index = 0;
            if (in_array($betArr[0], $tmp)) $index++;
            if (in_array($betArr[1], $tmp)) $index++;
            if (in_array($betArr[2], $tmp)) $index++;
            if (in_array($betArr[3], $tmp)) $index++;
            if (in_array($betArr[4], $tmp)) $index++;
            if (in_array($betArr[5], $tmp)) $index++;
            if($index == 5){
                $update['winner'] = 2;
            }
            break;
        case 'RXDT-QZW':
            // 任选胆拖：七中五 【胆码必须是开奖号码，所选七个号码有五个在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if (in_array($betArr[0], $tmp)) $index++;
            if (in_array($betArr[1], $tmp)) $index++;
            if (in_array($betArr[2], $tmp)) $index++;
            if (in_array($betArr[3], $tmp)) $index++;
            if (in_array($betArr[4], $tmp)) $index++;
            if (in_array($betArr[5], $tmp)) $index++;
            if (in_array($betArr[6], $tmp)) $index++;
            if($index == 5){
                $update['winner'] = 2;
            }
            break;
        case 'RXDT-BZW':
            // 任选胆拖：八中五 【胆码必须是开奖号码，所选八个号码有五个在开奖号码中】
            $tmp  = $kaijiang['code_arr'];
            if (in_array($betArr[0], $tmp)) $index++;
            if (in_array($betArr[1], $tmp)) $index++;
            if (in_array($betArr[2], $tmp)) $index++;
            if (in_array($betArr[3], $tmp)) $index++;
            if (in_array($betArr[4], $tmp)) $index++;
            if (in_array($betArr[5], $tmp)) $index++;
            if (in_array($betArr[6], $tmp)) $index++;
            if (in_array($betArr[7], $tmp)) $index++;
            if($index == 5){
                $update['winner'] = 2;
            }
            break;
    }
    $db->update('lottery_order_item', $update, 'id=' . $data['id']);
    $logFile   = '/www/wwwroot/one.qipai101.com/crontab/log/';
    $logStr    = date('Y-m-d H:i:s') . ': 中奖状态（' . '订单号：' . $data['order_no'] . '，投注号' . $data['betting_no'] . '， 期号' . $data['period'] . '）';
    openCodeLog($logFile, 'syxw_winner_log' . date('ymd') . '.txt', $logStr);
}


function openCodeLog($logDir, $fileName,  $str){
    // 检查路劲是否存在
    if (!file_exists($logDir)){
        mkdir($logDir, 0777, true);
    }
    $file = fopen($logDir . $fileName, "a+");
    fwrite($file, $str . "\r\n");
    fclose($file);
}